<?php

/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2019/8/20
 * Time: 11:12
 */
namespace App\Services\DfChannel;

interface DfPayChannel
{
    /**
     * 拉起代付
     *
     * 注：
     * 1.根据接口返回结果做相应处理
     * 2.各代付类需严格对应状态参数

     * @param string $wttkId 委托代付记录ID
     * @param string $payment_id 代付记录ID
     * @param int $channelId 代付渠道ID
     *
     * @return array
     */
    public function pull($wttkId, $payment_id, $channelId = 0);

    /**
     * 查询代付
     *
     * @param string $wttkId 委托代付记录ID
     *
     * @return mixed
     */
    public function query($wttkId);


    /**
     * 通道签名验证
     *
     * @param string $key
     * @param array $param
     * @return boolean
     */
    public function verify($key, $param);

    /**
     * 通道签名
     *
     * @param string $key
     * @param array $param
     * @return boolean
     */
    public function sign($key, $param);


    /**
     * 根据通道状态码返回是否继续
     *
     * @param $param
     * @return boolean
     */
    public function checkStatus($param);


    /**
     * 通道响应函数
     *
     * @param bool $ok
     * @return mixed
     */
    public function response($ok = true);


}